<?php
/**
 * Created by PhpStorm.
 * Author: shishiwenjie
 * Date: 2018/5/19
 * Time: 15:09
 */

namespace app\home\controller;
use think\Db;
use think\Controller;
use app\home\model\Resume as MResume;
use think\Session;
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;

class Resume extends Controller
{
  function index(){

      $cha=null;
      //判断是否是登陆状态
      if( !session('?mobile')){

          return $this->redirect('Users/login');

      }else{
          //使用模型层的对象进行数据的查询，使用闭包的方式
          $res = MResume::get(function ($query) {
              $query->where('user_id', Session::get('user_id'));
          });
          //判断是否有提交过简历
          if($res!=null){
              $cha='yes';
              $this->assign("res",$res);
              $this->assign("cha",$cha);
              return view("resume");
          }else{
              $cha='no';
              $this->assign("res",$res);
              $this->assign("cha",$cha);
              return view("resume");
          }
      }
  }
    //此方法是用来给用户第一次提交简历的
    function resume(){

        $city=$_POST['city'];
        $address = $city;
        //获取请求的数据
        $data = [
            'user_id'=>Session::get('user_id'),
            'tel' => $_POST['mobile'],
            'name' => $_POST['name'],
            'sex'=>$_POST['sex'],
            'address'=>$address,
            'type' => $_POST['type'],
            'think_job' => $_POST['think_job'],
            'huojiang'=>$_POST['huojiang']
        ];


        //自定义验证规则
        $rule = [
            'tel|手机号'=>'require|mobile',
            'name|姓名'=>'require',
            'address|地址'=>'require',
            'think_job|求职意向'=>'require',

        ];
        //使用控制层自带的验证类
        $cha = $this->validate($data, $rule);

        if (true !== $cha) {
            //返回错误信息
            $res = MResume::get(function ($query) {
                $query->where('user_id', Session::get('user_id'));
            });

            $this->assign("res",$res);
            $this->assign('cha', $cha);
            return $this->fetch('resume');
        } else {
         //验证正确的，插入数据库并上传图片。
            $result=db('liewu_teacher')->insert($data);

            $files = $_FILES['image'];
            $length=0;
            for($i=0;$i<count($files['type']);$i++){
                if($files['type'][$i]!==''){
                    $length++;
                }

            }
            $info="";
            require_once APP_PATH . '/../vendor/php-sdk-7.2.6/autoload.php';

            $accessKey = 'd3LcRkKtpfplRXql36w8A_Prdhwllfq_8LV3wYt_';
            $secretKey = 'vmLAbYxFOkgFel1RR0etZYif0rT4rbPnm_uOEDmt';
// 要转码的文件所在的空间
            $bucket = 'liewu01';

            //开始上传
            $date=[];
            for($i=0;$i<$length;$i++){
                $auth = new Auth($accessKey,$secretKey);
                $token = $auth->uploadToken($bucket);
                $temp = explode("/",$files['type'][$i]); //获取文件名按“.”进行分割
                $extension = end($temp); // 获取文件后缀名
                $filePath = $files['tmp_name'][$i];//获取文件路径
                // 上传到七牛后保存的文件名

                $rand=time();

                $key = $rand.".$extension";
                $uploadMgr = new UploadManager();
                list($ret,$err) = $uploadMgr->putFile($token, $key, $filePath);
                $newpath= $ret["key"];
               
                if(!empty($newpath)){
                    $filepath = "http://p99tcj5ft.bkt.clouddn.com/".$newpath;
                }else{
                    $this->error("上传失败");
                }
                $date[]=[
                    'src'=>$filepath,
                    'teacher_id'=>Session::get('user_id'),
                ];
            }
//        //将数据集插入到表中
            $result = Db::table('teacher_img')  //指定tp5_staff表
            ->insertAll($date);    // 批量添加
        }
        $cha="简历已保存！";
        //判断是否是登陆状态
        if( !session('?mobile')){
            $res = MResume::get(function ($query) {
                $query->where('user_id',0);
            });
            $this->assign("res",$res);
            $this->assign("cha",$cha);
            return $this->fetch('resume');
        }else{
            //使用模型层的对象进行数据的查询，使用闭包的方式
            $res = MResume::get(function ($query) {
                $query->where('user_id', Session::get('user_id'));
            });
            //判断是否有提交过简历
            if(!$res){
                $this->assign("res",$res);
                $this->assign("cha",$cha);
                return view("resume");
            }else{
                $this->assign("res",$res);
                $this->assign("cha",$cha);
                return view("resume");
            }
        }
   
    }

    //此方法是用来进入简历修改功能模块  并填充数据
    function update(){
        $cha=null;
        //判断是否是登陆状态
        if( !session('?mobile')){
            $res = MResume::get(function ($query) {
                $query->where('user_id',0);
            });
            $this->assign("res",$res);
            $this->assign("cha",$cha);
            return $this->fetch('resume');
        }else{
            //使用模型层的对象进行数据的查询，使用闭包的方式
            $res = MResume::get(function ($query) {
                $query->where('user_id', Session::get('user_id'));
            });
            //判断是否有提交过简历
            if(!$res){
                $this->assign("res",$res);
                $this->assign("cha",$cha);
                return view("resume");
            }else{
                $this->assign("res",$res);
                $this->assign("cha",$cha);
                return view("update");
            }
        }
    }


//此方法是用来给用户进行简历修改
    function doupdate(){
        
        $city=$_POST['city'];
        $address = $city;
        //获取请求的数据
        $data = [
            'user_id'=>Session::get('user_id'),
            'tel' => $_POST['mobile'],
            'name' => $_POST['name'],
            'sex'=>$_POST['sex'],
            'address'=>$address,
            'type' => $_POST['type'],
            'think_job' => $_POST['think_job'],
            'huojiang'=>$_POST['huojiang']
        ];


        //自定义验证规则
        $rule = [
            'tel|手机号'=>'require|mobile',
            'name|姓名'=>'require',
            'address|地址'=>'require',
            'think_job|求职意向'=>'require',

        ];
     
        //使用控制层自带的验证类
        $cha = $this->validate($data, $rule);
     
        if (true !== $cha) {
            //返回错误信息
           
            $this->assign('cha', $cha);
            return $this->fetch('update');
        } else {
         //验证正确的，更新数据库并上传图片。
           // $result=db('liewu_teacher')->insert($data);
           $t_id=Session::get('user_id');
           Db::table('liewu_teacher')
           ->where('user_id',$t_id)
           ->update($data);
    

            $files = $_FILES['image'];
        
         if($files['type'][0]!==''){
            $length=0;
            for($i=0;$i<count($files['type']);$i++){
                if($files['type'][$i]!==''){
                    $length++;
                }

            }
         
            $info="";
            require_once APP_PATH . '/../vendor/php-sdk-7.2.6/autoload.php';

            $accessKey = 'd3LcRkKtpfplRXql36w8A_Prdhwllfq_8LV3wYt_';
            $secretKey = 'vmLAbYxFOkgFel1RR0etZYif0rT4rbPnm_uOEDmt';
// 要转码的文件所在的空间
            $bucket = 'liewu01';

            //开始上传
            $date=[];
            for($i=0;$i<$length;$i++){
                $auth = new Auth($accessKey,$secretKey);
                $token = $auth->uploadToken($bucket);
                $temp = explode("/",$files['type'][$i]); //获取文件名按“.”进行分割
                $extension = end($temp); // 获取文件后缀名
                $filePath = $files['tmp_name'][$i];//获取文件路径
                // 上传到七牛后保存的文件名

                $rand=time();

                $key = $rand.".$extension";
                $uploadMgr = new UploadManager();
                list($ret,$err) = $uploadMgr->putFile($token, $key, $filePath);
                $newpath= $ret["key"];
                if(!empty($newpath)){
                    $filepath = "http://p99tcj5ft.bkt.clouddn.com/".$newpath;
                }else{
                    $this->error("上传失败");
                }
                $date[]=[
                    'src'=>$filepath,
                    'teacher_id'=>Session::get('user_id'),
                ];

            }


 //1、将原先存在导师的个人简历图片中的相关src图片地址删除。
       // 条件删除    
       $t_id=Session::get('user_id');
        Db::table('teacher_img')->where('teacher_id',$t_id)->delete();

//2、将数据集插入到导师的个人简历图片表中
            $result = Db::table('teacher_img')  //指定tp5_staff表
            ->insertAll($date);    // 批量添加
         }
           
    }
    $cha="修改成功！";
    //判断是否是登陆状态
    if( !session('?mobile')){
        $res = MResume::get(function ($query) {
            $query->where('user_id',0);
        });
        $this->assign("res",$res);
        $this->assign("cha",$cha);
        return $this->fetch('resume');
    }else{
        //使用模型层的对象进行数据的查询，使用闭包的方式
        $res = MResume::get(function ($query) {
            $query->where('user_id', Session::get('user_id'));
        });
        //判断是否有提交过简历
        if(!$res){
            $this->assign("res",$res);
            $this->assign("cha",$cha);
            return view("resume");
        }else{
            $this->assign("res",$res);
            $this->assign("cha",$cha);
            return view("update");
        }
    }
}
}